package com.alinu.workbench.service;

import com.alinu.vo.PaginationVO;
import com.alinu.workbench.domain.Activity;
import com.alinu.workbench.domain.ActivityRemark;

import java.util.List;
import java.util.Map;

/**
 * @author chenzuwei
 * @date 2021/3/15
 * @description 市场活动业务接口类
 */
public interface ActivityService {
    /**
     * 保存一个市场活动
     *
     * @param activity 市场活动
     * @return true/false
     */
    boolean saveActivity(Activity activity);

    /**
     * 获取市场活动列表
     *
     * @param params 参数
     * @return 统一输出数据对象
     */
    PaginationVO<Activity> getActivityList(Map<String, Object> params);

    /**
     * 删除市场活动
     *
     * @param ids 要删除的活动id
     * @return 是否删除成功
     */
    boolean deleteActivity(String[] ids);

    /**
     * 查询某个市场活动
     *
     * @param id id
     * @return activity对象
     */
    Activity findActivity(String id);

    /**
     * 更新市场活动数据
     *
     * @param activity 对象
     * @return 是否更新成功
     */
    boolean updateActivity(Activity activity);

    /**
     * 查询市场活动备注列表
     *
     * @param activityId aid
     * @return 列表
     */
    List<ActivityRemark> getRemarkList(String activityId);

    /**
     * 删除备注
     *
     * @param id id
     * @return 是否成功删除
     */
    boolean deleteRemark(String id);

    /**
     * 保存一个备注
     *
     * @param remark 备注
     * @return 是否保存成功
     */
    boolean saveRemark(ActivityRemark remark);

    /**
     * 更新备注
     *
     * @param remark 备注
     * @return 是否更新成功
     */
    boolean updateRemark(ActivityRemark remark);

    /**
     * 根据线索id获取活动列表
     *
     * @param clueId 线索id
     * @return 活动列表
     */
    List<Activity> findActivitiesByClueId(String clueId);

    /**
     * 获取市场活动通过活动名称
     *
     * @param params 参数
     * @return 活动列表
     */
    List<Activity> getActivitiesByName(Map<String, Object> params);

    List<Activity> findActivityByName(String name);
}
